import PV_ICE
import matplotlib.pyplot as plt
PV_ICE.__version__
'v0.2.0+337.g1bdcead'
modulefile_m = r'C:\Users\sayala\Documents\GitHub\PV_ICE\tests\baseline_modules_test_3.csv'
materialfile_m = r'C:\Users\sayala\Documents\GitHub\PV_ICE\tests\baseline_material_test_3.csv'
testfolder = 'TEMP'
sim1 = PV_ICE.Simulation(name='sim1', path=testfolder)
sim1.createScenario(name='scen1', massmodulefile=modulefile_m)
sim1.scenario['scen1'].addMaterial('mat1', massmatfile=materialfile_m)
path = TEMP
sim1.calculateMassFlow()
>>>> Calculating Material Flows <<<< Working on Scenario: scen1 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1
year, cum = sim1.aggregateResults()
# TO DO: Add HQ MF OU to aggregateResults
sim1.scenario['scen1'].material['mat1'].matdataOut_m.keys()
Index(['mat_EOL_Recycled_2_HQ', 'mat_EOL_Recycled_2_OQ',
'mat_EOL_Recycled_HQ_into_MFG', 'mat_EOL_Recycled_HQ_into_OU',
'mat_EOL_Recycled_VAT', 'mat_EnteringModuleManufacturing_total',
'mat_EnteringModuleManufacturing_virgin', 'mat_L0', 'mat_L1', 'mat_L2',
'mat_L3', 'mat_L4', 'mat_LostinModuleManufacturing',
'mat_MFG_Recycled_HQ_into_MFG', 'mat_MFG_Recycled_HQ_into_OU',
'mat_MFG_Recycled_into_HQ', 'mat_MFG_Recycled_into_OQ', 'mat_MFG_Scrap',
'mat_MFG_Scrap_Landfilled', 'mat_MFG_Scrap_Recycled_Losses_Landfilled',
'mat_MFG_Scrap_Recycled_Successfully', 'mat_MFG_Scrap_Sentto_Recycling',
'mat_Manufacturing_Input', 'mat_PG2_stored', 'mat_Total_EOL_Landfilled',
'mat_Total_Landfilled', 'mat_Total_MFG_Landfilled',
'mat_Total_Recycled_OU', 'mat_UsedSuccessfullyinModuleManufacturing',
'mat_Virgin_Stock', 'mat_Virgin_Stock_Raw', 'mat_reMFG',
'mat_reMFG_2_recycle', 'mat_reMFG_all_unyields',
'mat_reMFG_mod_unyield', 'mat_reMFG_target', 'mat_reMFG_untarget',
'mat_reMFG_unyield', 'mat_reMFG_yield', 'mat_recycled_PG4',
'mat_recycled_all', 'mat_recycled_target', 'mat_recycled_yield'],
dtype='object')
plt.plot(sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_recycled_PG4'])
[<matplotlib.lines.Line2D at 0x1b25673ba90>]
plt.plot(sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'])
[<matplotlib.lines.Line2D at 0x1b256e2c280>]
year.keys()
Index(['VirginStock_mat1_sim1_scen1_[Tonnes]',
'VirginStock_Module_sim1_scen1_[Tonnes]',
'WasteAll_mat1_sim1_scen1_[Tonnes]',
'WasteAll_Module_sim1_scen1_[Tonnes]',
'WasteEOL_mat1_sim1_scen1_[Tonnes]',
'WasteEOL_Module_sim1_scen1_[Tonnes]',
'WasteMFG_mat1_sim1_scen1_[Tonnes]',
'WasteMFG_Module_sim1_scen1_[Tonnes]',
'newInstalledCapacity_sim1_scen1_[MW]',
'ActiveCapacity_sim1_scen1_[MW]',
'DecommisionedCapacity_sim1_scen1_[MW]'],
dtype='object')
plt.plot(year['VirginStock_mat1_sim1_scen1_[Tonnes]'])
[<matplotlib.lines.Line2D at 0x1b256e96b50>]
plt.plot(year['ActiveCapacity_sim1_scen1_[MW]'])
[<matplotlib.lines.Line2D at 0x1b256f01bb0>]
sim1.plotMetricResults()
[]
sim1.createScenario(name='scen2', massmodulefile=modulefile_m)
sim1.scenario['scen2'].addMaterial('mat1', massmatfile=materialfile_m)
# sim1.scenario['scen2'].perfectRecycling()
#'mat_EOL_RecycledHQ_Reused4MFG'
sim1.scenMod_perfectRecycling(scenarios='scen2')
sim1.calculateMassFlow()
>>>> Calculating Material Flows <<<< Working on Scenario: scen1 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1 Working on Scenario: scen2 ******************** Finished Area+Power Generation Calculations ==> Working on Material : mat1 Recycled surplus End of Sim for Mat mat1 Scenario scen2 = 210.0 tonnes
year, cum = sim1.aggregateResults()
# TO DO: Add HQ MF OU to aggregateResults
sim1.scenario['scen1'].material['mat1'].matdataOut_m.keys()
Index(['mat_EOL_Recycled_2_HQ', 'mat_EOL_Recycled_2_OQ',
'mat_EOL_Recycled_HQ_into_MFG', 'mat_EOL_Recycled_HQ_into_OU',
'mat_EOL_Recycled_VAT', 'mat_EnteringModuleManufacturing_total',
'mat_EnteringModuleManufacturing_virgin', 'mat_L0', 'mat_L1', 'mat_L2',
'mat_L3', 'mat_L4', 'mat_LostinModuleManufacturing',
'mat_MFG_Recycled_HQ_into_MFG', 'mat_MFG_Recycled_HQ_into_OU',
'mat_MFG_Recycled_into_HQ', 'mat_MFG_Recycled_into_OQ', 'mat_MFG_Scrap',
'mat_MFG_Scrap_Landfilled', 'mat_MFG_Scrap_Recycled_Losses_Landfilled',
'mat_MFG_Scrap_Recycled_Successfully', 'mat_MFG_Scrap_Sentto_Recycling',
'mat_Manufacturing_Input', 'mat_PG2_stored', 'mat_Total_EOL_Landfilled',
'mat_Total_Landfilled', 'mat_Total_MFG_Landfilled',
'mat_Total_Recycled_OU', 'mat_UsedSuccessfullyinModuleManufacturing',
'mat_Virgin_Stock', 'mat_Virgin_Stock_Raw', 'mat_reMFG',
'mat_reMFG_2_recycle', 'mat_reMFG_all_unyields',
'mat_reMFG_mod_unyield', 'mat_reMFG_target', 'mat_reMFG_untarget',
'mat_reMFG_unyield', 'mat_reMFG_yield', 'mat_recycled_PG4',
'mat_recycled_all', 'mat_recycled_target', 'mat_recycled_yield'],
dtype='object')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_recycled_PG4'])
[<matplotlib.lines.Line2D at 0x1b25b9e22b0>]
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'])
[<matplotlib.lines.Line2D at 0x1b25bb72700>]
year['VirginStock_mat1_sim1_scen1_[Tonnes]'].sum()
290.0
year['VirginStock_mat1_sim1_scen2_[Tonnes]'].sum()
210.0
sim1.scenario['scen1'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_OU'].sum()
290000000.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'])
[<matplotlib.lines.Line2D at 0x1b25bf87a00>]
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'].sum()
290000000.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'], label='What actually got used in reMFG')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'], label='What got Sent in reMFG')
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG']
-
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'], label='What did not got used in reMFG')
plt.legend()
(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG']
-
sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT']).sum()
210000000.0
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'])
[<matplotlib.lines.Line2D at 0x1b25c012940>]
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_VAT'])
plt.plot(sim1.scenario['scen2'].material['mat1'].matdataOut_m['mat_EOL_Recycled_HQ_into_MFG'])
[<matplotlib.lines.Line2D at 0x1b25ba0cbb0>]
year.keys()
Index(['VirginStock_mat1_sim1_scen1_[Tonnes]',
'VirginStock_Module_sim1_scen1_[Tonnes]',
'WasteAll_mat1_sim1_scen1_[Tonnes]',
'WasteAll_Module_sim1_scen1_[Tonnes]',
'WasteEOL_mat1_sim1_scen1_[Tonnes]',
'WasteEOL_Module_sim1_scen1_[Tonnes]',
'WasteMFG_mat1_sim1_scen1_[Tonnes]',
'WasteMFG_Module_sim1_scen1_[Tonnes]',
'VirginStock_mat1_sim1_scen2_[Tonnes]',
'VirginStock_Module_sim1_scen2_[Tonnes]',
'WasteAll_mat1_sim1_scen2_[Tonnes]',
'WasteAll_Module_sim1_scen2_[Tonnes]',
'WasteEOL_mat1_sim1_scen2_[Tonnes]',
'WasteEOL_Module_sim1_scen2_[Tonnes]',
'WasteMFG_mat1_sim1_scen2_[Tonnes]',
'WasteMFG_Module_sim1_scen2_[Tonnes]',
'newInstalledCapacity_sim1_scen1_[MW]',
'newInstalledCapacity_sim1_scen2_[MW]',
'ActiveCapacity_sim1_scen1_[MW]',
'DecommisionedCapacity_sim1_scen1_[MW]',
'ActiveCapacity_sim1_scen2_[MW]',
'DecommisionedCapacity_sim1_scen2_[MW]'],
dtype='object')
plt.plot(year['VirginStock_mat1_sim1_scen1_[Tonnes]'])
plt.plot(year['VirginStock_mat1_sim1_scen2_[Tonnes]'])
[<matplotlib.lines.Line2D at 0x1b25bee0280>]
plt.plot(year['ActiveCapacity_sim1_scen2_[MW]'])
[<matplotlib.lines.Line2D at 0x1b25bef6cd0>]
sim1.plotMetricResults()
[]
#sim1.scenario['scen2'].scenMod_perfectRecycling()